package com.example.kotlinstudy.s2

import org.junit.Test

//https://www.bilibili.com/video/BV1wf4y1s7TG?p=5&spm_id_from=pageDriver
const val MAX = 100  //常量不能写在方法里面

class ExampleUnitTest2 {
    @Test
    fun test() {
//        const val MIN=0 写在这里报错
        print("hello~")
    }

    @Test
    fun test1() {
//        range表达试
        var a = 5;
        if (a in 0..4) {
            print("婴儿")
        } else if (a in 5..12) {
            print("少儿")
        } else print("未知")

        if (a !in 1..3) {

        }


//        when表达式  相当于java中的switch case 更加简单
        val school = "小学"
        val level = when (school) {
            "小学" -> "少儿"
            "中学" -> {
                "青少年"
            }
            else -> "未知"
        }
    }


    @Test    //String 模板
    fun test2() {
        val h = "你好！"
        print("世界$h")  //不需要再使用+

        val flag = false;
        println("回答 ： ${if (flag) "对" else "错"}") //还可以放表达式
    }

    @Test //函数
    fun test3() {
        println(doSomething(1, "hello"))
        doSomething(name = "lzj") //缺省值调用
    }

    //可以给一个缺省值
    private fun doSomething(age: Int = 2, name: String): String {//默认是public
        return "result"
    }

    @Test //Unit函数  kotlin中没有返回值的类型叫Unit   java中是空void没有类型的相当于只是用他来描述   而Kotlin给实际出来了类型
    fun test4() {
        println(fix(1, "l")) //输出 kotlin.Unit类型
    }

    private fun fix(i: Int, name: String) {
        println()
    }
}